/**
 * 用于对 wx.reqeust 做封装
 *    1. 自动携带 token 在请求头中
 */

const request = (options) => {
  return new Promise((resolve, reject) => {
    // 获取 token
    const token = wx.getStorageSync("token");
    // 有 token 时，写入到 header 中
    const header = { ...options.header };
    if (token) {
      header.Authorization = token;
    }

    wx.request({
      ...options,
      header,
      success: (res) => {
        // res.data 才是接口返回值
        // 1. 对业务状态码做处理
        const { status, msg, data, code, message } = res.data;
        if (status === 0 || code === 1000) {
          // 业务成功
          resolve(data);
        } else {
          // 业务失败
          wx.showToast({ icon: "error", title: msg || message });
          reject(msg || message);
        }
      },
      fail: (res) => {
        reject(res);
      },
    });
  });
};

export default request;
